#!/bin/bash

# 指定源目录和目标目录
source_dir="/home/openeuler/agiros/specs"
dest_dir="/home/openeuler/agiros/processed_specs"
bak_dir="/home/openeuler/agiros/bak_specs"

# 创建目标目录（如果不存在）
mkdir -p "$dest_dir"
mkdir -p "$bak_dir"

# 定义宏
macro_string="%define agiros_distro loong"

# 定义要替换的字符串
old_string="/opt/ros/%{ros_distro}"
new_string="/opt/agiros/%{agiros_distro}"
old_name="ros-%{ros_distro}"
new_name="agiros-%{agiros_distro}"

# 遍历 source_dir 下的所有 .spec 文件
find "$source_dir" -type f -name "*.spec" | while IFS= read -r spec_file; do
    # 获取文件的基础名称
    base_name=$(basename "$spec_file")

    # 使用 sed 进行替换，并将结果输出到目标目录
     # 追加宏定义在文件开头，替换旧字符串为新字符串
    {
        echo "$macro_string"
        sed -e "s|$old_string|$new_string|g"   \
       		-e "s|$old_name|$new_name|g" \
	        "$spec_file"
    }> "$dest_dir/$base_name"

    echo "修改并保存: $spec_file -> $dest_dir/$base_name"
    
    cp "$dest_dir/$base_name"  "$bak_dir/$base_name"  
    echo "备份: $spec_file -> $bak_dir/$base_name"
done